home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / khoaf / khoaf.bas < prev    next >
BASIC Source File  |  1995-08-18  |  28KB  |  911 lines

  1. 10 '----------------------------------------------------------
  2. 20 '<<<<<< フリコレ3以降一括検索ツール >>>>>>>
  3. 30 '<<<<<<   KHoAF☆(こ~ふ)  >>>>>>>
  4. 40 '<<<<<< KIM's Helper of All FSWCs >>>>>>>
  5. 50 '<<<<<<   Programmed by KIM 1995 >>>>>>>
  6. 60 '----------------------------------------------------------
  7. 70 SCREEN 0:SCREEN@0:SCREEN 1,0:CLS:PALETTE
  8. 80 CLEAR ,,,,,300*1024:DEFINT A-Z
  9. 90 ON ERROR GOTO *E_TRAP
  10. 100 STOP OFF
  11. 110 DEF FONT"システム   12ドット"
  12. 120 DIM KEYW$(32),KEYD(32),KASS1$(50),KASS2$(50),G$(2000)
  13. 130 DIM PROG$(10000),KEYWORD&(10000)
  14. 140 DIM FCNO(10000),SEL(10000)
  15. 150 DIM ICN1(256),ANDICN1(64),ICN2(256),ANDICN2(64),ICN3(256),ANDICN3(64)
  16. 160 DIM NROLL(48720),ARY$(100),ARY&(1)
  17. 170 DEF FNGETC&=ASC(INPUT$(1,1))
  18. 180 DEF FNGETSHORT&=FNGETC&+FNGETC&*256
  19. 190 DEF FNGETLONG&=FNGETSHORT&+FNGETSHORT&*65536
  20. 200 MODE=1:SELN=-1:TABC=8:CFCN=0:CDRIVE=15:MC1=0
  21. 210 GOSUB *MOUSE_SET:MOUSE 1,320,240,0
  22. 220 MOUSE 4,0,0,634,474
  23. 230 '
  24. 240 *LOAD_ICN
  25. 250 LOAD@"ICON.TIF"
  26. 260 GET@A(0,0)-(31,31),ICN1
  27. 270 GET@A(32,0)-(63,31),ICN2
  28. 280 GET@A(64,0)-(95,31),ICN3
  29. 290 GET@(0,0)-(31,31),ANDICN1
  30. 300 LINE(0,0)-(31,31),PSET,%1,BF
  31. 310 PUT@(0,0)-(31,31),ANDICN1,,0
  32. 320 GET@(0,0)-(31,31),ANDICN1
  33. 330 GET@(32,0)-(63,31),ANDICN2
  34. 340 LINE(32,0)-(63,31),PSET,7,BF
  35. 350 PUT@(32,0)-(63,31),ANDICN2,,0
  36. 360 GET@(32,0)-(63,31),ANDICN2
  37. 370 GET@(64,0)-(95,31),ANDICN3
  38. 380 LINE(64,0)-(95,31),PSET,7,BF
  39. 390 PUT@(64,0)-(95,31),ANDICN3,,0
  40. 400 GET@(64,0)-(95,31),ANDICN3
  41. 410 *PALETTE
  42. 420 FOR I=0 TO 1
  43. 430  SCREEN 1,I
  44. 440  PALETTE 2,[100,0,0]
  45. 450  PALETTE 3,[120,40,60]
  46. 460  PALETTE 4,[120,0,80]
  47. 470  PALETTE 5,[120,0,100]
  48. 480  PALETTE 7,[160,160,160]
  49. 490 NEXT
  50. 500 SCREEN 1,0
  51. 510 *LOAD_KEY
  52. 520 I=0
  53. 530 OPEN "I",#1,"KHOAF.KEY"
  54. 540 WHILE A$<>"*"
  55. 550  INPUT#1,KEYW$(I):A$=KEYW$(I):I=I+1
  56. 560 WEND
  57. 570 KEYN=I-2
  58. 580 I=0
  59. 590 WHILE NOT(EOF(1))
  60. 600  INPUT#1,KASS1$(I)
  61. 610  IF NOT(EOF(1)) THEN INPUT#1,KASS2$(I):I=I+1
  62. 620 WEND
  63. 630 KASSN=I-1
  64. 640 CLOSE
  65. 650 GOSUB *MENU_SET
  66. 660 MCN=2:GOSUB *MOUSE_C_SET:MOUSE 1,,,1
  67. 670 *LOAD_IDK
  68. 680 I=0
  69. 690 OPEN "I",#1,"KHOAF.IDK"
  70. 700 WHILE NOT(EOF(1))
  71. 710  LINE INPUT#1,PROGRAM$
  72. 720  LINE INPUT#1,MAKE$
  73. 730  LINE INPUT#1,K$
  74. 740  A=1
  75. 750  WHILE A>0
  76. 760   A=INSTR(K$," ")
  77. 770   ON 1+(A>0) GOTO 810
  78. 780    L=LEN(K$)
  79. 790    A$=LEFT$(K$,A-1):K$=RIGHT$(K$,L-A)
  80. 800   GOTO 820
  81. 810    A$=K$
  82. 820   A2=SEARCH(KEYW$,A$)
  83. 830   ON 1+(A2>-1) GOTO 880
  84. 840    J=SEARCH(KASS1$,A$)
  85. 850    ON 1+(J>-1) GOTO 880
  86. 860     A$=KASS2$(J)
  87. 870     A2=SEARCH(KEYW$,A$)
  88. 880   A&=2^A2
  89. 890   KEYWORD&(I)=KEYWORD&(I)-A&*((KEYWORD&(I) AND A&)=0)
  90. 900  WEND
  91. 910  LINE INPUT#1,GGG$
  92. 920  LINE INPUT#1,DOC$
  93. 930  LINE INPUT#1,DIR$
  94. 940  INPUT#1,FCNO(I)
  95. 950  PROG$(I)=LEFT$(PROGRAM$+SPACE$(57),57)+LEFT$(MAKE$+SPACE$(34),34)+LEFT$(GGG$+SPACE$(55),55)+LEFT$(DOC$+SPACE$(55),55)+LEFT$(DIR$,54)
  96. 960  I=I+1
  97. 970 WEND
  98. 980 DATAN=I-1
  99. 990 CLOSE
  100. 1000 SHELL "Q:"
  101. 1010 MCN=1:GOSUB *MOUSE_C_SET
  102. 1020 *MAIN
  103. 1030 IF MOUSE(2,0) THEN
  104. 1040  GOSUB *MOUSE_CHECK
  105. 1050 ENDIF
  106. 1060 IF MC1=1 AND MOUSE(2,0)=0 THEN MC1=0:GOSUB *SELECT
  107. 1070 GOTO *MAIN
  108. 1080 *MENU_EXIT
  109. 1090 SCREEN 1,1
  110. 1100 W$="終了しますか?":GOSUB *WINDOW
  111. 1110 GOSUB *WINDOW_SELECT
  112. 1120 CLS:SCREEN 1,0
  113. 1130 IF YN=1 THEN MOUSE 5:SCREEN 0:END
  114. 1140 RETURN *MAIN
  115. 1150 *MENU_SET
  116. 1160 LINE(0,0)-(639,479),PSET,%8,BF,%2
  117. 1170 LINE(0,204)-(639,479),PSET,%8,BF,%4
  118. 1180 SYMBOL(20,1),"KHoAF☆ --- KIM's Helper of All FSWCs --- V1.03  by KIM 1995",.75!,.75!,4
  119. 1190 BZ$(0)="CANCEL":BZ$(1)="LOOK":BZ$(2)="PRINT":BZ$(3)="EXEC_HELPER":BZ$(4)="EXIT"
  120. 1200 BZ$(5)="BACK":BZ$(6)="NEXT"
  121. 1210 BYN(3)=1:BYN(4)=1
  122. 1220 LINE(0,37)-(639,208),PSET,%8,BF,%3
  123. 1230 LINE(0,208)-(639,479),PSET,%8,BF,%4
  124. 1240 FOR K=0 TO 4
  125. 1250  LINE(20+120*K,16)-(136+120*K,33),PSET,0,B
  126. 1260  GOSUB *BUTTON_YN_1
  127. 1270 NEXT
  128. 1280 FOR I=0 TO 3
  129. 1290  FOR J=0 TO 7
  130. 1300   LINE(20+150*I,48+20*J)-(166+150*I,65+20*J),PSET,0,B
  131. 1310   LINE(21+150*I,49+20*J)-(165+150*I,64+20*J),PSET,%(3+KEYD(I+J*4)*11),B
  132. 1320   IF I+J*4=<KEYN THEN SYMBOL(26+150*I,51+20*J),KEYW$(I+J*4),.75!,.75!,7
  133. 1330 NEXT J,I
  134. 1340 FOR I=0 TO 11
  135. 1350  LINE(20,220+20*I)-(394,237+20*I),PSET,0,B
  136. 1360  LINE(398,220+20*I)-(620,237+20*I),PSET,0,B
  137. 1370 NEXT
  138. 1380 LINE(20,463)-(220,475),PSET,%8,BF,%4
  139. 1390 FOR K=5 TO 6
  140. 1400  LINE(240+80*(K-5),461)-(316+80*(K-5),478),PSET,0,B
  141. 1410  GOSUB *BUTTON_YN_2
  142. 1420 NEXT
  143. 1430 SYMBOL(284,38),"TITLE SELECT",.75!,.6!,%7
  144. 1440 SYMBOL(160,210),"TITLE",.75!,.6!,%7
  145. 1450 SYMBOL(356,210),"FSWC NO.",.75!,.6!,%7
  146. 1460 SYMBOL(490,210),"WRITER",.75!,.6!,%7
  147. 1470 GOSUB *LIST
  148. 1480 RETURN
  149. 1490 *MOUSE_CHECK
  150. 1500 IF MODE=2 THEN *MOUSE_CHECK2
  151. 1510 MX=MOUSE(0):MY=MOUSE(1)
  152. 1520 FOR I=0 TO 3
  153. 1530  FOR J=0 TO 7
  154. 1540   IF I+J*4=<KEYN THEN
  155. 1550    IF MX>20+150*I AND MY>48+20*J AND MX<166+150*I AND MY<65+20*J THEN
  156. 1560     KEYD(I+J*4)=1-(KEYD(I+J*4)):MC1=1
  157. 1570     LINE(21+150*I,49+20*J)-(165+150*I,64+20*J),PSET,%(3+KEYD(I+J*4)*11),B
  158. 1580     WHILE MX>20+150*I AND MY>48+20*J AND MX<166+150*I AND MY<65+20*J AND MOUSE(2,0)
  159. 1590      MX=MOUSE(0):MY=MOUSE(1)
  160. 1600     WEND
  161. 1610    ENDIF
  162. 1620   ENDIF
  163. 1630 NEXT J,I
  164. 1640 *MOUSE_CHECK2
  165. 1650 A=0
  166. 1660 MX=MOUSE(0):MY=MOUSE(1)
  167. 1670 FOR I=0 TO 4
  168. 1680  IF -BYN(I) THEN
  169. 1690   IF MX>20+120*I AND MY>16 AND MX<136+120*I AND MY<33 THEN
  170. 1700    A=1
  171. 1710    LINE(21+120*I,17)-(135+120*I,32),PSET,6,B:WAIT 4
  172. 1720    LINE(21+120*I,17)-(135+120*I,32),PSET,%2,B
  173. 1730   ENDIF
  174. 1740  ENDIF
  175. 1750 NEXT
  176. 1760 FOR I=0 TO 1
  177. 1770  IF -BYN(I+5) THEN
  178. 1780   IF MX>240+80*I AND MY>461 AND MX<316+80*I AND MY<478 THEN
  179. 1790    A=1
  180. 1800    LINE(241+80*I,462)-(315+80*I,477),PSET,6,B:WAIT 4
  181. 1810    LINE(241+80*I,462)-(315+80*I,477),PSET,%4,B
  182. 1820   ENDIF
  183. 1830  ENDIF
  184. 1840 NEXT
  185. 1850 IF MODE=1 THEN
  186. 1860  FOR I=0 TO 11
  187. 1870   IF LISTN+I=<SELN THEN
  188. 1880    IF MX>20 AND MY>220+20*I AND MX<394 AND MY<237+20*I THEN
  189. 1890     A=1
  190. 1900     LINE(21,221+20*I)-(393,236+20*I),PSET,6,B:WAIT 4
  191. 1910     LINE(21,221+20*I)-(393,236+20*I),PSET,%4,B
  192. 1920    ENDIF
  193. 1930    IF MX>398 AND MY>220+20*I AND MX<620 AND MY<237+20*I THEN
  194. 1940     A=1
  195. 1950     LINE(399,221+20*I)-(619,236+20*I),PSET,6,B:WAIT 4
  196. 1960     LINE(399,221+20*I)-(619,236+20*I),PSET,%4,B
  197. 1970    ENDIF
  198. 1980   ENDIF
  199. 1990  NEXT
  200. 2000 ENDIF
  201. 2010 IF A=1 AND MOUSE(2,0) THEN *MOUSE_CHECK2
  202. 2020 FOR I=0 TO 1
  203. 2030  IF -BYN(I+5) THEN
  204. 2040   IF MX>240+80*I AND MY>461 AND MX<316+80*I AND MY<478 THEN
  205. 2050    IF MODE=1 THEN ON I+1 GOSUB *LIST_BACK,*LIST_NEXT
  206. 2060    IF MODE=2 THEN ON I+1 GOSUB *TYPE_BACK,*TYPE_NEXT
  207. 2070   ENDIF
  208. 2080  ENDIF
  209. 2090 NEXT
  210. 2100 IF MODE=1 THEN
  211. 2110  LOOKN=-1
  212. 2120  FOR I=0 TO 11
  213. 2130   IF LISTN+I=<SELN THEN
  214. 2140    IF MX>20 AND MY>220+20*I AND MX<396 AND MY<237+20*I THEN
  215. 2150     LOOKN=SEL(LISTN+I):A=I
  216. 2160    ENDIF
  217. 2170    IF MX>400 AND MY>220+20*I AND MX<620 AND MY<237+20*I THEN
  218. 2180     LOOKN=SEL(LISTN+I):A=I
  219. 2190    ENDIF
  220. 2200   ENDIF
  221. 2210  NEXT
  222. 2220  IF LOOKN>0 THEN GOSUB *TXT_SET
  223. 2230 ENDIF
  224. 2240 FOR I=0 TO 4
  225. 2250  IF MX>20+120*I AND MY>16 AND MX<136+120*I AND MY<33 THEN
  226. 2260   IF MODE=2 AND BYN(I)=1 THEN ON I+1 GOSUB *TXT_CANCEL,*TXT_LOOK,*TXT_PRINT,*EXEC_HELPER:I=5
  227. 2270   IF MODE=1 THEN ON I+1 GOSUB *SELECT_CANCEL,*INPUT_EX,*DUMMY,*EXEC_HELPER,*MENU_EXIT:I=5
  228. 2280  ENDIF
  229. 2290 NEXT
  230. 2300 IF MX>20 AND MY>463 AND MX<220 AND MY<475 THEN
  231. 2310  IF MODE=1 THEN GOSUB *LIST_ROLL
  232. 2320  IF MODE=2 THEN GOSUB *TYPE_ROLL
  233. 2330 ENDIF
  234. 2340 IF MODE=2 AND MX>60 AND MY>38 AND MX<579 AND MY<457 THEN
  235. 2350  GOSUB *TYPE_NEKOROLL
  236. 2360 ENDIF
  237. 2370 RETURN
  238. 2380 *DUMMY
  239. 2390 RETURN
  240. 2400 *SELECT
  241. 2410 MCN=2:GOSUB *MOUSE_C_SET
  242. 2420 A&=0
  243. 2430 FOR I=0 TO KEYN
  244. 2440  A&=A&-(KEYD(I)=1)*2^I
  245. 2450 NEXT
  246. 2460 IF A&>0 THEN
  247. 2470  J=0
  248. 2480  FOR I=0 TO DATAN
  249. 2490   IF (KEYWORD&(I) AND A&)=A& THEN SEL(J)=I:J=J+1
  250. 2500  NEXT
  251. 2510  SELN=J-1
  252. 2520 ELSE
  253. 2530  SELN=-1
  254. 2540 ENDIF
  255. 2550 LINE(430,463)-(639,474),PSET,%4,BF
  256. 2560 IF SELN>-1 THEN
  257. 2570  SYMBOL(430,463),RIGHT$("    "+STR$(SELN+1),5)+" founds",.75!,.75!,%7
  258. 2580 ENDIF
  259. 2590 BYN(0)=-(A&>0):K=0:GOSUB *BUTTON_YN_1
  260. 2600 BYN(5)=0:BYN(6)=-(SELN>11)
  261. 2610 FOR K=5 TO 6
  262. 2620  GOSUB *BUTTON_YN_2
  263. 2630 NEXT
  264. 2640 LISTN=0:GOSUB *LIST
  265. 2650 MCN=1:GOSUB *MOUSE_C_SET
  266. 2660 RETURN
  267. 2670 *SELECT_CANCEL
  268. 2680 IF BYN(0)=0 THEN RETURN
  269. 2690 FOR I=0 TO KEYN
  270. 2700  KEYD(I)=0
  271. 2710 NEXT
  272. 2720 FOR I=0 TO 3
  273. 2730  FOR J=0 TO 7
  274. 2740   LINE(21+150*I,49+20*J)-(165+150*I,64+20*J),PSET,%4,B
  275. 2750 NEXT J,I
  276. 2760 GOSUB *SELECT
  277. 2770 RETURN
  278. 2780 *LIST
  279. 2790 MCN=2:GOSUB *MOUSE_C_SET
  280. 2800 LINE(20,463)-(220,475),PSET,%8,BF,%4
  281. 2810 IF SELN>-1 THEN
  282. 2820  A1=LISTN/(SELN+1)*198:IF A1>198 THEN A1=198
  283. 2830  A2=(LISTN+12)/(SELN+1)*198:IF A2>198 THEN A2=198
  284. 2840  LINE(21+A1,464)-(21+A2,474),PSET,%2,BF
  285. 2850 ENDIF
  286. 2860 FOR I=0 TO 11
  287. 2870  LINE(21,221+20*I)-(393,236+20*I),PSET,%4,BF
  288. 2880  LINE(401,221+20*I)-(619,236+20*I),PSET,%4,BF
  289. 2890  A=LISTN+I
  290. 2900  IF A=<SELN THEN
  291. 2910   SYMBOL(26,223+20*I),LEFT$(PROG$(SEL(A)),57)+RIGHT$("  "+AKCNV$(STR$(FCNO(SEL(A)))),4)+"  "+MID$(PROG$(SEL(A)),58,34),.75!,.75!,7
  292. 2920  ENDIF
  293. 2930 NEXT
  294. 2940 MCN=1:GOSUB *MOUSE_C_SET
  295. 2950 RETURN
  296. 2960 *LIST_BACK
  297. 2970 IF LISTN+12>SELN THEN BYN(6)=1:K=6:GOSUB *BUTTON_YN_2
  298. 2980 LISTN=LISTN-12:GOSUB *LIST
  299. 2990 IF LISTN<1 THEN BYN(5)=0:K=5:GOSUB *BUTTON_YN_2
  300. 3000 RETURN
  301. 3010 *LIST_NEXT
  302. 3020 IF LISTN<1 THEN BYN(5)=1:K=5:GOSUB *BUTTON_YN_2
  303. 3030 LISTN=LISTN+12:GOSUB *LIST
  304. 3040 IF LISTN+12>SELN THEN BYN(6)=0:K=6:GOSUB *BUTTON_YN_2
  305. 3050 RETURN
  306. 3060 *LIST_ROLL
  307. 3070 BLISTN=LISTN
  308. 3080 LISTN=INT((MX-21)/198*(SELN+1)/12)*12
  309. 3090 IF LISTN<>BLISTN THEN
  310. 3100  IF BLISTN+12>SELN THEN BYN(6)=1:K=6:GOSUB *BUTTON_YN_2
  311. 3110  IF BLISTN<1 THEN BYN(5)=1:K=5:GOSUB *BUTTON_YN_2
  312. 3120  GOSUB *LIST
  313. 3130  IF LISTN<1 THEN BYN(5)=0:K=5:GOSUB *BUTTON_YN_2
  314. 3140  IF LISTN+12>SELN THEN BYN(6)=0:K=6:GOSUB *BUTTON_YN_2
  315. 3150 ENDIF
  316. 3160 RETURN
  317. 3170 *BUTTON_YN_1
  318. 3180 SYMBOL(78-LEN(BZ$(K))*3+120*K,20),BZ$(K),.75!,.6!,7*BYN(K),,,1
  319. 3190 RETURN
  320. 3200 *BUTTON_YN_2
  321. 3210 SYMBOL(266+(K-5)*80,465),BZ$(K),.75!,.6!,7*BYN(K),,,1
  322. 3220 RETURN
  323. 3230 *TXT_SET
  324. 3240 SCREEN 1,1
  325. 3250 LINE(21,221+20*A)-(393,236+20*A),PSET,6,B
  326. 3260 LINE(399,221+20*A)-(619,236+20*A),PSET,6,B
  327. 3270 BYN0=BYN(0):BYN5=BYN(5):BYN6=BYN(6)
  328. 3280 IF CFCN<>FCNO(LOOKN) THEN
  329. 3290  W$="フリコレ"+AKCNV$(STR$(FCNO(LOOKN)))+"  をセットしてください"
  330. 3300  GOSUB *WINDOW
  331. 3310  GOSUB *WINDOW_SELECT
  332. 3320  IF YN=2 THEN TXTMODE=1:GOTO *TXT_CANCEL
  333. 3330 ENDIF
  334. 3340 CFCN=FCNO(LOOKN)
  335. 3350 GD=0:MODE=2
  336. 3360 *TXT_LOAD
  337. 3370 MCN=2:GOSUB *MOUSE_C_SET
  338. 3380 ON GD+1 GOSUB *SET_GGG,*SET_DOC
  339. 3390 A=INSTR(F$,".")
  340. 3400 IF A>0 THEN
  341. 3410  FILE$=F$:FILES FILE$:GOTO *TXT_READ
  342. 3420 ENDIF
  343. 3430 IF F$="Q:" THEN FILE$="":GOTO *TXT_READ
  344. 3440 FILES F$,C,ARY&
  345. 3450 FILES F$,N,ARY$
  346. 3460 A=0
  347. 3470 FOR I=1 TO ARY&(1)
  348. 3480  IF MID$(ARY$(I),10,3)=A$ THEN A=1:Y=I:I=ARY&(1)
  349. 3490 NEXT
  350. 3500 IF -A THEN
  351. 3510 FILE$=F$+"\"+LEFT$(ARY$(Y),8)+"."+A$
  352. 3520 ELSE
  353. 3530  FILE$="":TXTN=-1
  354. 3540  LINE(60,37)-(579,458),PSET,%8,BF,%5
  355. 3550  LINE(20,463)-(220,475),PSET,%8,BF,%4
  356. 3560  BYN(5)=BYN5:BYN(6)=BYN6
  357. 3570  SYMBOL(180,232),"この作品の "+A$+"ファイルは見つかりませんでした",.75!,.75!,7
  358. 3580  FOR K=5 TO 6
  359. 3590   GOSUB *BUTTON_YN_2
  360. 3600  NEXT
  361. 3610 ENDIF
  362. 3620 TXTMODE=1
  363. 3630 *TXT_READ
  364. 3640 IF FILE$<>"" THEN
  365. 3650 MCN=2:GOSUB *MOUSE_C_SET
  366. 3660 LINE(60,37)-(579,458),PSET,%8,BF,%5
  367. 3670  SYMBOL(230,232),"テキストファイル読み込み中・・・・",.75!,.75!,7
  368. 3680  OPEN "I",#1,FILE$
  369. 3690  J=0:P=0:G$(0)=""
  370. 3700  WHILE NOT(EOF(1)) AND J<2000
  371. 3710   LINE INPUT#1,A$
  372. 3720   WHILE LEN(A$)>79
  373. 3730    KL=KLEN(A$)
  374. 3740    WHILE LEN(G$(J))<79
  375. 3750     G$(J)=G$(J)+KLEFT$(A$,1)
  376. 3760     A$=KRIGHT$(A$,KLEN(A$)-1)
  377. 3770    WEND
  378. 3780    J=J+1:G$(J)=""
  379. 3790   WEND
  380. 3800   G$(J)=A$:J=J+1:G$(J)=""
  381. 3810  WEND
  382. 3820  TXTN=J-1
  383. 3830  TYPEN=0:GOSUB *TYPE
  384. 3840  MCN=2:GOSUB *MOUSE_C_SET
  385. 3850  CLOSE
  386. 3860  BYN(5)=0:BYN(6)=-(TXTN>29)
  387. 3870  SCREEN 1,0
  388. 3880  FOR K=5 TO 6
  389. 3890   GOSUB *BUTTON_YN_2
  390. 3900  NEXT
  391. 3910  SCREEN 1,1
  392. 3920  LINE(430,463)-(639,474),PSET,%4,BF
  393. 3930  IF TXTMODE=1 THEN SYMBOL(430,463),MID$(PROG$(LOOKN),202,54),.75!,.75!,%7
  394. 3940 ENDIF
  395. 3950 SCREEN 1,0
  396. 3960 BYN(0)=1:K=0:GOSUB *BUTTON_YN_1
  397. 3970 BYN(1)=2-TXTMODE:K=1:GOSUB *BUTTON_YN_1
  398. 3980 BYN(2)=1:K=2:GOSUB *BUTTON_YN_1
  399. 3990 BYN(4)=0:K=4:GOSUB *BUTTON_YN_1
  400. 4000 SCREEN 1,1
  401. 4010 MCN=1:GOSUB *MOUSE_C_SET
  402. 4020 RETURN
  403. 4030 *TXT_LOOK
  404. 4040 GD=1-GD:GOTO *TXT_LOAD
  405. 4050 *TXT_CANCEL
  406. 4060 CLS:SCREEN 1,0
  407. 4070 BYN(0)=BYN0:BYN(1)=0:BYN(2)=0:BYN(4)=1
  408. 4080 FOR K=0 TO 4
  409. 4090  LINE(20+120*K,16)-(136+120*K,33),PSET,0,B
  410. 4100  GOSUB *BUTTON_YN_1
  411. 4110 NEXT
  412. 4120 BYN(5)=BYN5:BYN(6)=BYN6
  413. 4130 FOR K=5 TO 6
  414. 4140  GOSUB *BUTTON_YN_2
  415. 4150 NEXT
  416. 4160 MODE=1
  417. 4170 IF TXTMODE=2 THEN *INPUT_EX_F
  418. 4180 RETURN
  419. 4190 *TYPE
  420. 4200 MCN=2:GOSUB *MOUSE_C_SET
  421. 4210 LINE(20,463)-(220,475),PSET,%8,BF,%4
  422. 4220 IF TYPEN>-1 AND TXTN>-1 THEN
  423. 4230  A1=TYPEN/(TXTN+1)*198:IF A1>198 THEN A1=198
  424. 4240  A2=(TYPEN+30)/(TXTN+1)*198:IF A2>198 THEN A2=198
  425. 4250  LINE(21+A1,464)-(21+A2,474),PSET,%2,BF
  426. 4260 ENDIF
  427. 4270 LINE(60,37)-(579,458),PSET,%8,BF,%5
  428. 4280 FOR I=0 TO 29
  429. 4290  IF TYPEN+I=<TXTN THEN SYMBOL(80,39+I*14),G$(TYPEN+I),.75!,.75!,7
  430. 4300 NEXT
  431. 4310 MCN=1:GOSUB *MOUSE_C_SET
  432. 4320 RETURN
  433. 4330 *TYPE_BACK
  434. 4340 IF TYPEN+30>TXTN THEN BYN(6)=1:K=6:SCREEN 1,0:GOSUB *BUTTON_YN_2:SCREEN 1,1
  435. 4350 TYPEN=TYPEN-30:IF TYPEN<0 THEN TYPEN=0
  436. 4360 GOSUB *TYPE
  437. 4370 IF TYPEN<1 THEN BYN(5)=0:K=5:SCREEN 1,0:GOSUB *BUTTON_YN_2:SCREEN 1,1
  438. 4380 RETURN
  439. 4390 *TYPE_NEXT
  440. 4400 IF TYPEN<1 THEN BYN(5)=1:K=5:SCREEN 1,0:GOSUB *BUTTON_YN_2:SCREEN 1,1
  441. 4410 TYPEN=TYPEN+30:GOSUB *TYPE
  442. 4420 IF TYPEN+30>TXTN THEN BYN(6)=0:K=6:SCREEN 1,0:GOSUB *BUTTON_YN_2:SCREEN 1,1
  443. 4430 RETURN
  444. 4440 *TYPE_ROLL
  445. 4450 BTYPEN=TYPEN
  446. 4460 TYPEN=(MX-21)/198*(TXTN+1)
  447. 4470 IF TYPEN<>BTYPEN THEN
  448. 4480  IF BTYPEN+30>TXTN AND TYPEN+30=<TXTN THEN BYN(6)=1:K=6:SCREEN 1,0:GOSUB *BUTTON_YN_2:SCREEN 1,1
  449. 4490  IF BTYPEN<1 THEN BYN(5)=1:K=5:SCREEN 1,0:GOSUB *BUTTON_YN_2:SCREEN 1,1
  450. 4500  GOSUB *TYPE
  451. 4510  IF TYPEN<1 THEN BYN(5)=0:K=5:SCREEN 1,0:GOSUB *BUTTON_YN_2:SCREEN 1,1
  452. 4520  IF TYPEN+30>TXTN AND BTYPEN+30=<TXTN THEN BYN(6)=0:K=6:SCREEN 1,0:GOSUB *BUTTON_YN_2:SCREEN 1,1
  453. 4530 ENDIF
  454. 4540 RETURN
  455. 4550 *TYPE_NEKOROLL
  456. 4560 BY=MOUSE(1):A3=0
  457. 4570 MCN=3:GOSUB *MOUSE_C_SET
  458. 4580 WHILE MOUSE(2,0)
  459. 4590  MY=MOUSE(1)
  460. 4600  A4=(MY-BY)/14
  461. 4610  A5=A3:A3=A3+SGN(A4-A3)
  462. 4620  IF A3>A5 THEN GOSUB *NROLL_BACK
  463. 4630  IF A3<A5 THEN GOSUB *NROLL_NEXT
  464. 4640 WEND
  465. 4650 MCN=1:GOSUB *MOUSE_C_SET
  466. 4660 RETURN
  467. 4670 *NROLL_BACK
  468. 4680 IF TYPEN=0 THEN BYN(5)=0:K=5:SCREEN 1,0:GOSUB *BUTTON_YN_2:SCREEN 1,1:RETURN
  469. 4690 BTYPEN=TYPEN:TYPEN=TYPEN-1
  470. 4700 GET@A(80,39)-(559,443),NROLL
  471. 4710 PUT@A(80,53)-(559,457),NROLL
  472. 4720 LINE(80,39)-(559,50),PSET,%5,BF
  473. 4730 SYMBOL(80,39),G$(TYPEN),.75!,.75!,7
  474. 4740 IF BTYPEN+30>TXTN AND TYPEN+30=<TXTN THEN BYN(6)=1:K=6:SCREEN 1,0:GOSUB *BUTTON_YN_2:SCREEN 1,1
  475. 4750 LINE(20,463)-(220,475),PSET,%8,BF,%4
  476. 4760 A1=TYPEN/(TXTN+1)*198:IF A1>198 THEN A1=198
  477. 4770 A2=(TYPEN+30)/(TXTN+1)*198:IF A2>198 THEN A2=198
  478. 4780 LINE(21+A1,464)-(21+A2,474),PSET,%2,BF
  479. 4790 RETURN
  480. 4800 *NROLL_NEXT
  481. 4810 IF TYPEN+30>TXTN THEN BYN(6)=0:K=6:SCREEN 1,0:GOSUB *BUTTON_YN_2:SCREEN 1,1:RETURN
  482. 4820 BTYPEN=TYPEN:TYPEN=TYPEN+1
  483. 4830 GET@A(80,53)-(559,457),NROLL
  484. 4840 PUT@A(80,39)-(559,443),NROLL
  485. 4850 LINE(80,445)-(559,456),PSET,%5,BF
  486. 4860 SYMBOL(80,445),G$(TYPEN+29),.75!,.75!,7
  487. 4870 IF BTYPEN<1 THEN BYN(5)=1:K=5:SCREEN 1,0:GOSUB *BUTTON_YN_2:SCREEN 1,1
  488. 4880 LINE(20,463)-(220,475),PSET,%8,BF,%4
  489. 4890 A1=TYPEN/(TXTN+1)*198:IF A1>198 THEN A1=198
  490. 4900 A2=(TYPEN+30)/(TXTN+1)*198:IF A2>198 THEN A2=198
  491. 4910 LINE(21+A1,464)-(21+A2,474),PSET,%2,BF
  492. 4920 RETURN
  493. 4930 *SET_GGG
  494. 4940 GGG$=MID$(PROG$(LOOKN),92,55)
  495. 4950 A$=" "
  496. 4960 WHILE A$=" "
  497. 4970  A$=RIGHT$(GGG$,1)
  498. 4980  IF A$=" " THEN GGG$=LEFT$(GGG$,LEN(GGG$)-1)
  499. 4990 WEND
  500. 5000 IF LEFT$(GGG$,2)<>"Q:" THEN F$="Q:"+GGG$ ELSE F$=GGG$
  501. 5010 A$="GGG"
  502. 5020 RETURN
  503. 5030 *SET_DOC
  504. 5040 DOC$=MID$(PROG$(LOOKN),147,55)
  505. 5050 A$=" "
  506. 5060 WHILE A$=" "
  507. 5070  A$=RIGHT$(DOC$,1)
  508. 5080  IF A$=" " THEN DOC$=LEFT$(DOC$,LEN(DOC$)-1)
  509. 5090 WEND
  510. 5100 IF LEFT$(DOC$,2)<>"Q:" THEN F$="Q:"+DOC$ ELSE F$=DOC$
  511. 5110 A$="DOC"
  512. 5120 RETURN
  513. 5130 *TXT_PRINT
  514. 5140 W$="表示されているテキストを印刷しますか?"
  515. 5150 GOSUB *WINDOW
  516. 5160 GOSUB *WINDOW_SELECT
  517. 5170 IF YN=1 THEN
  518. 5180  W$="プリンタをセットしてください"
  519. 5190  GOSUB *WINDOW
  520. 5200  SYMBOL(270,240),"※印刷用紙はA4を推奨します ^^;",.75!,.75!,7
  521. 5210  GOSUB *WINDOW_SELECT
  522. 5220  IF YN=1 THEN
  523. 5230  FOR I=0 TO TXTN
  524. 5240   LPRINT G$(I)
  525. 5250  NEXT
  526. 5260  ENDIF
  527. 5270 ENDIF
  528. 5280 GOSUB *TYPE
  529. 5290 RETURN
  530. 5300 *EXEC_HELPER
  531. 5310 SCREEN 1,1
  532. 5320 W$="純正(^_^;)ヘルパーを起動しますか?"
  533. 5330 GOSUB *WINDOW
  534. 5340 GOSUB *WINDOW_SELECT
  535. 5350 IF YN=1 THEN
  536. 5360  RUN"\HELPER.EXP"
  537. 5370 ENDIF
  538. 5380 IF MODE=1 THEN
  539. 5390  CLS:SCREEN 1,0
  540. 5400 ELSE
  541. 5410  GOSUB *TYPE
  542. 5420 ENDIF
  543. 5430 RETURN
  544. 5440 *INPUT_EX
  545. 5450 WHILE MOUSE(2,0)
  546. 5460  MX=MOUSE(0):MY=MOUSE(1)
  547. 5470  IF MX>20+120 AND MY>16 AND MX<136+120 AND MY<33 THEN
  548. 5480   LINE(21+120*I,17)-(135+120*I,32),PSET,6,B:WAIT 4
  549. 5490   LINE(21+120*I,17)-(135+120*I,32),PSET,%2,B
  550. 5500  ENDIF
  551. 5510 WEND
  552. 5520 IF MX>20+120 AND MY>16 AND MX<136+120 AND MY<33 THEN ELSE RETURN
  553. 5530 *INPUT_EX_F
  554. 5540 SCREEN 1,1
  555. 5550 GOSUB *FS_WINDOW
  556. 5560 CLS:SCREEN 1,0
  557. 5570 IF FILE$="" THEN RETURN
  558. 5580 IF RIGHT$(FILE$,4)=".TIF" THEN
  559. 5590  GOSUB *TIF_LOAD
  560. 5600  GOTO *INPUT_EX_F
  561. 5610 ENDIF 
  562. 5620 IF RIGHT$(FILE$,4)=".JPG" THEN
  563. 5630  GOSUB *JPG_LOAD
  564. 5640  GOTO *INPUT_EX_F
  565. 5650 ENDIF 
  566. 5660 IF RIGHT$(FILE$,4)=".EUP" THEN
  567. 5670  GOSUB *EUP_LOAD
  568. 5680  GOTO *INPUT_EX_F
  569. 5690 ENDIF 
  570. 5700 MODE=2:TXTMODE=2:SCREEN 1,1:GOTO *TXT_READ
  571. 5710 RETURN
  572. 5720 *FS_WINDOW
  573. 5730 FOR I=0 TO 180 STEP 10
  574. 5740  LINE(320-I,240-I/2)-(320+I,240+I/2),PSET,%8,B
  575. 5750  WAIT 1
  576. 5760 NEXT
  577. 5770 LINE(140,150)-(500,330),PSET,%8,BF,%3
  578. 5780 SYMBOL(281,152),"FILE SELECTER",.75!,.6!,%7
  579. 5790 FOR I=0 TO 7
  580. 5800  FOR J=0 TO 1
  581. 5810   LINE(240+I*26,170+J*17)-(264+I*26,185+J*17),PSET,%8,B
  582. 5820   SYMBOL(246+I*26,172+J*17),AKCNV$(MID$("ABDEFGHIJKLMNOPQ",I+J*8+1,1)),.75!,.75!,%8-7*(I+J*8=CDRIVE),,,1
  583. 5830 NEXT J,I
  584. 5840 FOR I=0 TO 1
  585. 5850  LINE(233+I*87,307)-(317+I*87,322),PSET,%8,B
  586. 5860  SYMBOL(271+I*87,310),KMID$("<>",I+1,1),.75!,.75!,7
  587. 5870 NEXT
  588. 5880 LINE(472,160)-(490,178),PSET,%8,B
  589. 5890 SYMBOL(476,164),"×",.75!,.75!,7
  590. 5900 GOSUB *FS_SEEK
  591. 5910 GOSUB *TYPE_FNAME
  592. 5920 *FS_MAIN
  593. 5930 A3=0
  594. 5940 IF MOUSE(2,0) THEN GOSUB *FS_MOUSE_CHECK
  595. 5950 IF A3=1 THEN RETURN ELSE *FS_MAIN
  596. 5960 *FS_SEEK
  597. 5970 MCN=2:GOSUB *MOUSE_C_SET
  598. 5980 FILES "*.*",C,ARY&
  599. 5990 FILES "*.*",N,ARY$
  600. 6000 A=0:TFN=0
  601. 6010 FOR I=1 TO ARY&(1)
  602. 6020  IF MID$(ARY$(I),17,9)="--<DIR>--" THEN A=A+1:SWAP ARY$(A),ARY$(I)
  603. 6030 NEXT
  604. 6040 DIRN=A
  605. 6050 A1=DIRN:A2=0:GOSUB *SORT
  606. 6060 IF ARY&(1)>DIRN THEN A1=ARY&(1)-DIRN:A2=DIRN:GOSUB *SORT
  607. 6070 MCN=1:GOSUB *MOUSE_C_SET
  608. 6080 RETURN
  609. 6090 *FS_MOUSE_CHECK
  610. 6100 A=0
  611. 6110 MX=MOUSE(0):MY=MOUSE(1)
  612. 6120 FOR I=0 TO 4
  613. 6130  FOR J=0 TO 3
  614. 6140   IF I+J*5+TFN<ARY&(1) AND MX>146+J*87 AND MY>220+I*17 AND MX<230+J*87 AND MY<235+I*17 THEN
  615. 6150    LINE(147+J*87,221+I*17)-(229+J*87,234+I*17),PSET,6,B:WAIT 2
  616. 6160    LINE(147+J*87,221+I*17)-(229+J*87,234+I*17),PSET,%4,B:A=1
  617. 6170   ENDIF
  618. 6180 NEXT J,I
  619. 6190 FOR I=0 TO 7
  620. 6200  FOR J=0 TO 1
  621. 6210   IF MX>240+26*I AND MY>170+J*17 AND MX<264+26*I AND MY<185+J*17 THEN
  622. 6220   LINE(241+I*26,171+J*17)-(263+26*I,184+J*17),PSET,6,B:WAIT 2
  623. 6230   LINE(241+I*26,171+J*17)-(263+26*I,184+J*17),PSET,%4,B:A=1
  624. 6240  ENDIF
  625. 6250 NEXT J,I
  626. 6260 FOR I=0 TO 1
  627. 6270  IF MX>233+I*87 AND MY>307 AND MX<317+I*87 AND MY<322 THEN
  628. 6280   LINE(234+I*87,308)-(316+I*87,321),PSET,6,B:WAIT 2
  629. 6290   LINE(234+I*87,308)-(316+I*87,321),PSET,%3,B:A=1
  630. 6300  ENDIF
  631. 6310 NEXT
  632. 6320 IF MX>472 AND MY>160 AND MX<490 AND MY<178 THEN
  633. 6330  LINE(473,161)-(489,177),PSET,6,B:WAIT 2
  634. 6340  LINE(473,161)-(489,177),PSET,%3,B:A=1
  635. 6350 ENDIF
  636. 6360 IF A=1 AND MOUSE(2,0) THEN *FS_MOUSE_CHECK
  637. 6370 FOR I=0 TO 4
  638. 6380  FOR J=0 TO 3
  639. 6390   IF I+J*5+TFN<ARY&(1) AND MX>146+J*87 AND MY>220+I*17 AND MX<230+J*87 AND MY<235+I*17 THEN GOSUB *FS_FILE_SET
  640. 6400 NEXT J,I
  641. 6410 FOR I=0 TO 7
  642. 6420  FOR J=0 TO 1
  643. 6430   IF MX>240+26*I AND MY>170+J*17 AND MX<264+26*I AND MY<185+J*17 THEN GOSUB *FS_CH_DRIVE
  644. 6440 NEXT J,I
  645. 6450 FOR I=0 TO 1
  646. 6460  IF MX>233+I*87 AND MY>307 AND MX<317+I*87 AND MY<322 THEN
  647. 6470   ON I+1 GOSUB *TYPE_FN_BACK,*TYPE_FN_NEXT
  648. 6480  ENDIF
  649. 6490 NEXT
  650. 6500 IF MX>472 AND MY>160 AND MX<490 AND MY<178 THEN A3=1:FILE$=""
  651. 6510 RETURN
  652. 6520 *TYPE_FNAME
  653. 6530 FOR I=0 TO 4
  654. 6540  FOR J=0 TO 3
  655. 6550   LINE(146+J*87,220+I*17)-(230+J*87,235+I*17),PSET,%8,BF,%4
  656. 6560 NEXT J,I
  657. 6570 FOR I=1 TO 20
  658. 6580  J=I+TFN
  659. 6590  IF J=<ARY&(1) THEN
  660. 6600   SYMBOL(152+INT((I-1)/5)*87,222+((I-1) MOD 5)*17),LEFT$(ARY$(J),12),.75!,.75!,7+(MID$(ARY$(J),17,9)="--<DIR>--")
  661. 6610  ENDIF
  662. 6620 NEXT
  663. 6630 RETURN
  664. 6640 *TYPE_FN_BACK
  665. 6650 IF TFN=<0 THEN RETURN
  666. 6660 TFN=TFN-20
  667. 6670 GOSUB *TYPE_FNAME
  668. 6680 RETURN
  669. 6690 *TYPE_FN_NEXT
  670. 6700 IF TFN+20>=ARY&(1) THEN RETURN
  671. 6710 TFN=TFN+20
  672. 6720 GOSUB *TYPE_FNAME
  673. 6730 RETURN
  674. 6740 *FS_FILE_SET
  675. 6750 A=I+J*5+TFN+1
  676. 6760 IF MID$(ARY$(A),17,9)="--<DIR>--" THEN
  677. 6770  SHELL "CD "+LEFT$(ARY$(A),12)
  678. 6780  GOSUB *FS_SEEK
  679. 6790  GOSUB *TYPE_FNAME
  680. 6800 ELSE
  681. 6810  A3=1
  682. 6820  FILE$=LEFT$(ARY$(A),8)+"."+MID$(ARY$(A),10,3)
  683. 6830 ENDIF
  684. 6840 RETURN
  685. 6850 *FS_CH_DRIVE
  686. 6860 BC=CDRIVE:CDRIVE=I+J*8
  687. 6870 SHELL MID$("ABDEFGHIJKLMNOPQ",I+J*8+1,1)+":"
  688. 6880 SYMBOL(246+(BC MOD 8)*26,172+INT(BC/8)*17),AKCNV$(MID$("ABDEFGHIJKLMNOPQ",BC+1,1)),.75!,.75!,%8,,,1
  689. 6890 SYMBOL(246+I*26,172+J*17),AKCNV$(MID$("ABDEFGHIJKLMNOPQ",CDRIVE+1,1)),.75!,.75!,7,,,1
  690. 6900  GOSUB *FS_SEEK
  691. 6910  GOSUB *TYPE_FNAME
  692. 6920 RETURN
  693. 6930 *SORT'(heap-sort)
  694. 6940 M=A1
  695. 6950 IF M<2 THEN RETURN
  696. 6960 FOR CHECK=INT(M/2) TO 1 STEP -1
  697. 6970  GOSUB *PC_CHECK
  698. 6980 NEXT
  699. 6990 WHILE M>1
  700. 7000  SWAP ARY$(M+A2),ARY$(1+A2)
  701. 7010  M=M-1
  702. 7020  CHECK=1:GOSUB *PC_CHECK
  703. 7030 WEND
  704. 7040 RETURN
  705. 7050 *PC_CHECK
  706. 7060 F_I=CHECK
  707. 7070 F_J=F_I*2:F_END=0
  708. 7080 WHILE F_J=<M AND F_END=0
  709. 7090  IF F_J<M THEN IF ARY$(F_J+A2)<ARY$(F_J+1+A2) THEN F_J=F_J+1
  710. 7100  IF ARY$(F_I+A2)>ARY$(F_J+A2) THEN
  711. 7110   F_END=1
  712. 7120  ELSE
  713. 7130   SWAP ARY$(F_I+A2),ARY$(F_J+A2)
  714. 7140   F_I=F_J:F_J=F_I*2
  715. 7150  ENDIF
  716. 7160 WEND
  717. 7170 RETURN
  718. 7180 *TIF_LOAD
  719. 7190 MCN=2:GOSUB *MOUSE_C_SET
  720. 7200 OPEN "I",#1,FILE$
  721. 7210 A$=INPUT$(4,1)
  722. 7220 IF A$<>"II"+CHR$(&H2A)+CHR$(0) THEN RETURN
  723. 7230 IFDPOS&=FNGETLONG&
  724. 7240 IF IFDPOS&>8 THEN A$=INPUT$(IFDPOS&-8,1)
  725. 7250 TAGNUM&=FNGETSHORT&
  726. 7260 FOR I=0 TO TAGNUM&-1
  727. 7270  TAGID&=FNGETSHORT&
  728. 7280  TAGTYPE&=FNGETSHORT&
  729. 7290  TAGDATNUM&=FNGETLONG&
  730. 7300  TAGDAT&=FNGETSHORT&
  731. 7310  A&=FNGETSHORT&
  732. 7320  IF TAGID&=&H100 THEN XSIZE=TAGDAT&
  733. 7330  IF TAGID&=&H101 THEN YSIZE=TAGDAT&
  734. 7340  IF TAGID&=&H102 THEN
  735. 7350   IF TAGTYPE&=3 AND TAGDATNUM&=1 THEN
  736. 7360    IF TAGDAT&=1 THEN COLTYPE=2
  737. 7370    IF TAGDAT&=4 THEN COLTYPE=16
  738. 7380    IF TAGDAT&=8 THEN COLTYPE=256
  739. 7390    IF TAGDAT&=16 THEN COLTYPE=32000
  740. 7400   ELSE
  741. 7410    IF TAGTYPE&=3 AND TAGDATNUM&=3 THEN COLTYPE=1677
  742. 7420   ENDIF
  743. 7430  ENDIF
  744. 7440 NEXT
  745. 7450 CLOSE
  746. 7460 *TIF_LOAD2
  747. 7470 A=0
  748. 7480 IF COLTYPE=2 OR COLTYPE=16 THEN SCREEN 1,1:SCREEN@0:A=1
  749. 7490 IF COLTYPE=32000 THEN SCREEN 1,1:SCREEN@1:A=1
  750. 7500 IF COLTYPE=32000 AND (XSIZE>320 OR YSIZE>240) THEN
  751. 7510  WINDOW(0,0)-(511,255):VIEW(0,0)-(511,255)
  752. 7520  SCREEN 1,0:SCREEN@1
  753. 7530  WINDOW(0,0)-(511,255):VIEW(0,0)-(511,255)
  754. 7540  OUT &H440,27,2:OUT &H442,0,2
  755. 7550  OUT &H440,15:OUT &H443,2
  756. 7560  SCREEN 1,0
  757. 7570 ENDIF
  758. 7580 IF COLTYPE=256 THEN SCREEN 0:SCREEN@2:A=1
  759. 7590 IF A=0 THEN RETURN
  760. 7600 MOUSE 5
  761. 7610 CLS:LOAD@ FILE$
  762. 7620 IF COLTYPE=32000 AND (XSIZE>320 OR YSIZE>240) THEN
  763. 7630  SCREEN 1,1:LOAD@ FILE$,(0,-256)
  764. 7640 ENDIF
  765. 7650 WHILE PTRIG(2)=0:WEND
  766. 7660 SCREEN@1:SCREEN 1,1:SCREEN@1:SCREEN@0:CLS
  767. 7670 PALETTE 2,[100,0,0]
  768. 7680 PALETTE 3,[120,40,60]
  769. 7690 PALETTE 4,[120,0,80]
  770. 7700 PALETTE 5,[120,0,100]
  771. 7710 PALETTE 7,[160,160,160]
  772. 7720 IF (COLTYPE=32000 AND (XSIZE>320 OR YSIZE>240)) OR COLTYPE=256 THEN
  773. 7730  SCREEN 1,0:SCREEN@0:CLS:PALETTE
  774. 7740  PALETTE 2,[100,0,0]
  775. 7750  PALETTE 3,[120,40,60]
  776. 7760  PALETTE 4,[120,0,80]
  777. 7770  PALETTE 5,[120,0,100]
  778. 7780  PALETTE 7,[160,160,160]
  779. 7790 ENDIF
  780. 7800 GOSUB *MOUSE_SET:MOUSE 1,320,240,1
  781. 7810 MOUSE 4,0,0,634,474
  782. 7820 MCN=1:GOSUB *MOUSE_C_SET
  783. 7830 IF (COLTYPE=32000 AND (XSIZE>320 OR YSIZE>240)) OR COLTYPE=256 THEN
  784. 7840  GOSUB *MENU_SET
  785. 7850  GOSUB *LIST
  786. 7860 ENDIF
  787. 7870 RETURN
  788. 7880 *JPG_LOAD
  789. 7890 COLTYPE=32000:XSIZE=640:YSIZE=480
  790. 7900 GOTO *TIF_LOAD2
  791. 7910 *EUP_LOAD
  792. 7920 MCN=2:GOSUB *MOUSE_C_SET
  793. 7930 FILES FILE$,N,ARY$
  794. 7940 DIM EUP%(VAL(MID$(ARY$(1),18,9)))
  795. 7950 SCREEN 1,1
  796. 7960 LOAD@ FILE$,EUP%
  797. 7970 W$=FILE$+"  を演奏中です":GOSUB *WINDOW2
  798. 7980 SYMBOL(170,240),"右クリックしながら[OK]すると演奏したままにできます",.75!,.75!,7
  799. 7990 PLAY@ EUP%
  800. 8000 MCN=1:GOSUB *MOUSE_C_SET
  801. 8010 GOSUB *WINDOW2_SELECT
  802. 8020 IF MOUSE(2,1) THEN ELSE PLAY OFF
  803. 8030 CLS:ERASE EUP%
  804. 8040 RETURN
  805. 8050 *MOUSE_C_SET
  806. 8060 IF MCN=1 THEN MOUSE 6,1,ANDICN1,ICN1
  807. 8070 IF MCN=2 THEN MOUSE 6,1,ANDICN2,ICN2
  808. 8080 IF MCN=3 THEN MOUSE 6,1,ANDICN3,ICN3
  809. 8090 RETURN
  810. 8100 *WINDOW
  811. 8110 FOR I=0 TO 160 STEP 10
  812. 8120  LINE(320-I,240-I/160*45)-(320+I,240+I/160*45),PSET,%8,B
  813. 8130  WAIT 1
  814. 8140 NEXT
  815. 8150 LINE(160,195)-(480,285),PSET,%8,BF,%3
  816. 8160 SYMBOL(320-LEN(W$)*3,225),W$,.75!,.75!,7
  817. 8170 Z$(0)="YES":Z$(1)="NO"
  818. 8180 FOR I=0 TO 1
  819. 8190  LINE(240+80*I,260)-(316+80*I,277),PSET,%8,B
  820. 8200  SYMBOL(278+80*I-LEN(Z$(I))*3,264),Z$(I),.75!,.6!,7,,,1
  821. 8210 NEXT
  822. 8220 RETURN
  823. 8230 *WINDOW_SELECT
  824. 8240 YN=0
  825. 8250 WHILE YN=0
  826. 8260  IF MOUSE(2,0) THEN GOSUB *WS_MOUSE_CHECK
  827. 8270 WEND
  828. 8280 RETURN
  829. 8290 *WS_MOUSE_CHECK
  830. 8300 MX=MOUSE(0):MY=MOUSE(1)
  831. 8310 YN=0
  832. 8320 FOR I=0 TO 1
  833. 8330  IF MX>240+80*I AND MY>260 AND MX<316+80*I AND MY<277 THEN
  834. 8340   YN=I+1
  835. 8350   LINE(241+80*I,261)-(315+80*I,276),PSET,6,B:WAIT 2
  836. 8360   LINE(241+80*I,261)-(315+80*I,276),PSET,%3,B
  837. 8370  ENDIF
  838. 8380 NEXT
  839. 8390 IF YN>0 AND MOUSE(2,0) THEN *WS_MOUSE_CHECK
  840. 8400 RETURN
  841. 8410 *WINDOW2
  842. 8420 FOR I=0 TO 160 STEP 10
  843. 8430  LINE(320-I,240-I/160*45)-(320+I,240+I/160*45),PSET,%8,B
  844. 8440  WAIT 1
  845. 8450 NEXT
  846. 8460 LINE(160,195)-(480,285),PSET,%8,BF,%3
  847. 8470 SYMBOL(320-LEN(W$)*3,225),W$,.75!,.75!,7
  848. 8480 LINE(280,260)-(360,277),PSET,%8,B
  849. 8490 SYMBOL(314,264),"OK",.75!,.6!,7,,,1
  850. 8500 RETURN
  851. 8510 *WINDOW2_SELECT
  852. 8520 YN=0
  853. 8530 WHILE YN=0
  854. 8540  IF MOUSE(2,0) THEN GOSUB *W2S_MOUSE_CHECK
  855. 8550 WEND
  856. 8560 RETURN
  857. 8570 *W2S_MOUSE_CHECK
  858. 8580 MX=MOUSE(0):MY=MOUSE(1)
  859. 8590 YN=0
  860. 8600 IF MX>280 AND MY>260 AND MX<360 AND MY<277 THEN
  861. 8610  YN=1
  862. 8620  LINE(281,261)-(359,276),PSET,6,B:WAIT 2
  863. 8630  LINE(281,261)-(359,276),PSET,%3,B
  864. 8640 ENDIF
  865. 8650 IF YN>0 AND MOUSE(2,0) THEN *W2S_MOUSE_CHECK
  866. 8660 RETURN
  867. 8670 '
  868. 8680 *E_TRAP
  869. 8690 IF ERL=6870 THEN CDRIVE=BC:RESUME 6920
  870. 8700 IF (ERL=3450 OR ERL=5990) AND ERR=9 THEN ERASE ARY$:DIM ARY$(ARY&(1)):RESUME
  871. 8710 IF ERL=5980 OR ERL=5990 THEN ARY&(1)=0:RESUME 6070
  872. 8720 IF ERL=7960 THEN RESUME 8030
  873. 8730 IF ERL=7940 THEN RESUME 8040
  874. 8740 IF ERL=5360 THEN RESUME NEXT
  875. 8750 MCN=1:GOSUB *MOUSE_C_SET
  876. 8760 IF ERL=3410 OR ERL=3440 OR ERL=3450 THEN
  877. 8770  W$="CDが違っていませんか?":GOSUB *WINDOW2
  878. 8780  GOSUB *WINDOW2_SELECT
  879. 8790  CFCN=0
  880. 8800  RESUME *TXT_CANCEL
  881. 8810 ENDIF
  882. 8820 IF ERR=7 OR ERR=82 OR ERR=83 THEN
  883. 8830  W$="メモリが足りません。すみません。":GOSUB *WINDOW2
  884. 8840  GOSUB *WINDOW2_SELECT
  885. 8850  MOUSE 5:END
  886. 8860 ENDIF
  887. 8870 IF ERL=5240 THEN
  888. 8880  W$="プリンタが認識されませんでした。再実行しますか?"
  889. 8890  GOSUB *WINDOW
  890. 8900  GOSUB *WINDOW_SELECT
  891. 8910  IF YN=1 THEN RESUME 5180
  892. 8920  RESUME 5280
  893. 8930 ENDIF
  894. 8940 SCREEN 0:COLOR 7:CLS
  895. 8950 PRINT"エラー行";ERL;"  エラー番号";ERR
  896. 8960 MOUSE 5:END
  897. 8970 '--------------------------------------------------------------
  898. 8980 '   < マウス移動比率データーの取得 >
  899. 8990 '                                  for F-BASIC 386 V2.1 L10 以上
  900. 9000 '                                      Programmed by Luzz-tum
  901. 9010 ' サブルーチン名 「 *MOUSE_SET 」
  902. 9020 '  BASIC でマウスを使うと、コントロールパネルで設定したマウススピ
  903. 9030 ' ードが無視され、ユーザーに違和感を与えてしまいます。このルーチン
  904. 9040 ' ではこれを解消します。
  905. 9050 '  単純に GOSUB *MOUSE_SET を実行して下さい。マウスの初期化とスピ
  906. 9060 ' ードの変更をします。
  907. 9070 '
  908. 9080 *MOUSE_SET'↓本体プログラム用に MOUSE 0 を MOUSE 0,1 に変更 by KIM
  909. 9090  MOUSE 0,1:MOUSE 3,0,INP(&H3B06):MOUSE 3,1,INP(&H3B06)
  910. 9100  RETURN
  911.